<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	 
	 <meta name="description" content="XDMF parallel partitioned mesh I/O on top of HDF5">
    
    <meta name="author" content="Víctor Sande Veiga" >
    <link rel="icon" href="../favicon.png">

    <title>hdf5_structured_dataset_per_process_handler.f90 &ndash; XH5For</title>

    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/pygments.css" rel="stylesheet">
    <link href="../css/font-awesome.min.css" rel="stylesheet">
    <link href="../css/local.css" rel="stylesheet">
    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    
    <script src="../js/jquery-2.1.3.min.js"></script>
    <script src="../js/svg-pan-zoom.min.js"></script>

  </head>

  <body>

    <!-- Fixed navbar -->
    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="../index.html">XH5For </a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
				
            <li class="dropdown hidden-xs visible-sm visible-md hidden-lg">
              <a href="#" class="dropdown-toggle"
              data-toggle="dropdown" role="button"
              aria-haspopup="true"
		 aria-expanded="false">Contents <span class="caret"></span></a>
	      <ul class="dropdown-menu">
              
            <li><a href="../lists/files.html">Source Files</a></li>
				
				
            <li><a href="../lists/modules.html">Modules</a></li>
				
            
                                
            <li><a href="../lists/procedures.html">Procedures</a></li>
				
								
            <li><a href="../lists/types.html">Derived Types</a></li>
				
				
            <li><a href="../lists/programs.html">Programs</a></li>
				
            </ul>
            </li>

<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li>


<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li>



<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li>

                             
<li class="visible-xs hidden-sm visible-lg"><a href="../lists/types.html">Derived Types</a></li>


<li class="visible-xs hidden-sm visible-lg"><a href="../lists/programs.html">Programs</a></li>

          </ul>
        
        <form action="../search.html" class="navbar-form navbar-right" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required>
        </div>
<!--
        <button type="submit" class="btn btn-default">Submit</button>
-->
        </form>
        
        </div><!--/.nav-collapse -->
      </div>
    </nav>

    <div class="container">
    
  
  <div class="row">
    <h1>hdf5_structured_dataset_per_process_handler.f90
    <small>Source File</small>
    
    </h1>
    
<div class="row">
  <div class="col-lg-12">
<div class="well well-sm">
  <ul class="list-inline" style="margin-bottom:0px;display:inline">
     
     
     
     
    
    
     <li><i class="fa fa-list-ol"></i>
       <a data-toggle="tooltip"
	  data-placement="bottom" data-html="true"
	  title=" 3.1% of total for source files.">401 statements</a>
     </li> 
     
     
    <li><i class="fa fa-code"></i><a href="../src/hdf5_structured_dataset_per_process_handler.f90"> Source File</a></li>
     
  </ul>
  <ol class="breadcrumb in-well text-right">
  
     <li class="active">hdf5_structured_dataset_per_process_handler.f90</li>
  </ol>
</div>
</div>
</div>
<script>
  $(function () {
  $('[data-toggle="tooltip"]').tooltip()
  })
</script>

  </div>
  <div class="row">
    <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg">
    
<div id="sidebar">
  






<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div>
  <div id="mods-0" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/hdf5_structured_dataset_per_process_handler.html">hdf5_structured_dataset_per_process_handler</a>
      
    </div>
  </div>
</div>















<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
  <div class="list-group">
    <a class="list-group-item" href="../sourcefile/hdf5_structured_dataset_per_process_handler.f90.html#src">hdf5_structured_dataset_per_process_handler.f90</a>
  </div>
</div>


  <hr>
  

<div class="panel panel-default">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-0">All Source Files</a></h3></div>
  <div id="allfiles-0" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../sourcefile/ch_unstructured_hexahedron_perf.f90.html">ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/fox_xdmf.f90.html">fox_xdmf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_contiguous_hyperslab_handler.f90.html">hdf5_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_dataset_per_process_handler.f90.html">hdf5_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_handler.f90.html">hdf5_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_contiguous_hyperslab_handler.f90.html">hdf5_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_dataset_per_process_handler.f90.html">hdf5_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_contiguous_hyperslab_handler.f90.html">hdf5_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_dataset_per_process_handler.f90.html">hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/mpi_environment.f90.html">mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/spatial_grid_descriptor.f90.html">spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler.f90.html">steps_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler_test.f90.html">steps_handler_test.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_contiguous_hyperslab_factory.f90.html">structured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_dataset_per_process_factory.f90.html">structured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_spatial_grid_descriptor.f90.html">structured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_uniform_grid_descriptor.f90.html">structured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_fox_wxml.f90.html">test_FoX_wxml.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90.html">test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_dataset_per_process_handler.f90.html">test_hdf5_rectilinear_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_contiguous_hyperslabs_handler.f90.html">test_hdf5_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_dataset_per_process_handler.f90.html">test_hdf5_regular_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_contiguous_hyperslabs_handler.f90.html">test_hdf5_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_dataset_per_process_handler.f90.html">test_hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_mpi_environment.f90.html">test_mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_attribute.f90.html">test_xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_character_data.f90.html">test_xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_dataitem.f90.html">test_xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_geometry.f90.html">test_xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_grid.f90.html">test_xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90.html">test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_dataset_per_process.f90.html">test_xdmf_rectilinear_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_contiguous_hyperslabs_handler.f90.html">test_xdmf_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_dataset_per_process.f90.html">test_xdmf_regular_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_time.f90.html">test_xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_topology.f90.html">test_xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_contiguous_hyperslabs_handler.f90.html">test_xdmf_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_dataset_per_process.f90.html">test_xdmf_unstructured_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_xinclude.f90.html">test_xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_hdf5_mod.f90.html">try_compile_hdf5_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_mpi_mod.f90.html">try_compile_mpi_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/uniform_grid_descriptor.f90.html">uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_contiguous_hyperslab_factory.f90.html">unstructured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_dataset_per_process_factory.f90.html">unstructured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_spatial_grid_descriptor.f90.html">unstructured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_uniform_grid_descriptor.f90.html">unstructured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_attribute.f90.html">xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_character_data.f90.html">xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_contiguous_hyperslab_handler.f90.html">xdmf_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataitem.f90.html">xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataset_per_process_handler.f90.html">xdmf_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_domain.f90.html">xdmf_domain.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_element.f90.html">xdmf_element.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_file.f90.html">xdmf_file.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_geometry.f90.html">xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_grid.f90.html">xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_handler.f90.html">xdmf_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_information.f90.html">xdmf_information.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_parameters.f90.html">xdmf_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_contiguous_hyperslab_handler.f90.html">xdmf_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_dataset_per_process_handler.f90.html">xdmf_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_time.f90.html">xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_topology.f90.html">xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_contiguous_hyperslab_handler.f90.html">xdmf_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_dataset_per_process_handler.f90.html">xdmf_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_utils.f90.html">xdmf_utils.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_xinclude.f90.html">xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for.f90.html">xh5for.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_abstract_factory.f90.html">xh5for_abstract_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_grid.f90.html">xh5for_ch_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_non_static_grid_series.f90.html">xh5for_ch_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_static_grid_series.f90.html">xh5for_ch_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_grid.f90.html">xh5for_ch_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_non_static_grid_series.f90.html">xh5for_ch_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_static_grid_series.f90.html">xh5for_ch_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron.f90.html">xh5for_ch_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron_perf.f90.html">xh5for_ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_mixedtopology.f90.html">xh5for_ch_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_non_static_tetrahedron.f90.html">xh5for_ch_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_quadilateral.f90.html">xh5for_ch_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_mixed_series.f90.html">xh5for_ch_unstructured_static_mixed_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_tetrahedron.f90.html">xh5for_ch_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_tetrahedron.f90.html">xh5for_ch_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_triangles.f90.html">xh5for_ch_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_grid.f90.html">xh5for_dpp_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_non_static_grid_series.f90.html">xh5for_dpp_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_static_grid_series.f90.html">xh5for_dpp_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_grid.f90.html">xh5for_dpp_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_non_static_grid_series.f90.html">xh5for_dpp_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_static_grid_series.f90.html">xh5for_dpp_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_hexahedron.f90.html">xh5for_dpp_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_mixedtopology.f90.html">xh5for_dpp_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_non_static_tetrahedron.f90.html">xh5for_dpp_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_quadilateral.f90.html">xh5for_dpp_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_static_tetrahedron.f90.html">xh5for_dpp_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_tetrahedron.f90.html">xh5for_dpp_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_triangles.f90.html">xh5for_dpp_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_factory.f90.html">xh5for_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_handler.f90.html">xh5for_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_metadata.f90.html">xh5for_metadata.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_parameters.f90.html">xh5for_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_utils.f90.html">xh5for_utils.f90</a>
      
    </div>
  </div>
</div>


</div>  

    </div>
    <div class="col-md-9" id='text'>
    
    
    <h3>This File Depends On</h3>
    
                <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph Pages: 1 -->
<svg id="sourcefilehdf5_structured_dataset_per_process_handlerf90EfferentGraph" width="641pt" height="114pt"
 viewBox="0.00 0.00 641.00 113.57" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph" class="graph" transform="scale(0.445448 0.445448) rotate(0) translate(4 250.95)">
<title>sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-250.95 1435,-250.95 1435,4 -4,4"/>
<!-- sourcefile~hdf5_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node1" class="node"><title>sourcefile~hdf5_structured_dataset_per_process_handler.f90</title>
<polygon fill="none" stroke="black" points="1431,-54.9474 1177,-54.9474 1177,-30.9474 1431,-30.9474 1431,-54.9474"/>
<text text-anchor="middle" x="1304" y="-40.5474" font-family="Helvetica,sans-Serif" font-size="10.50">hdf5_structured_dataset_per_process_handler.f90</text>
</g>
<!-- sourcefile~xh5for_utils.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node2" class="node"><title>sourcefile~xh5for_utils.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node2"><a xlink:href="../sourcefile/xh5for_utils.f90.html" xlink:title="xh5for_utils.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="406.5,-34.9474 321.5,-34.9474 321.5,-10.9474 406.5,-10.9474 406.5,-34.9474"/>
<text text-anchor="middle" x="364" y="-20.5474" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_utils.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge25" class="edge"><title>sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M406.812,-18.5691C491.7,-10.2718 690.333,6.13305 857,-2.94738"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M859,-2.94738C939.311,-7.58705 959.569,-1.47211 1040,-2.94738"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1042,-2.94738C1110.89,-4.21105 1188.87,-17.781 1241.5,-28.77"/>
<polygon fill="#000000" stroke="#000000" points="1240.85,-32.2087 1251.36,-30.8586 1242.3,-25.3609 1240.85,-32.2087"/>
</g>
<!-- sourcefile~mpi_environment.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node3" class="node"><title>sourcefile~mpi_environment.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node3"><a xlink:href="../sourcefile/mpi_environment.f90.html" xlink:title="mpi_environment.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="584.5,-92.9474 471.5,-92.9474 471.5,-68.9474 584.5,-68.9474 584.5,-92.9474"/>
<text text-anchor="middle" x="528" y="-78.5474" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">mpi_environment.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~mpi_environment.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge4" class="edge"><title>sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~mpi_environment.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M398.567,-34.965C423.329,-43.8305 457.223,-55.9654 483.974,-65.543"/>
<polygon fill="#000000" stroke="#000000" points="482.882,-68.8695 493.476,-68.9451 485.241,-62.2792 482.882,-68.8695"/>
</g>
<!-- sourcefile~hdf5_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node5" class="node"><title>sourcefile~hdf5_dataset_per_process_handler.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node5"><a xlink:href="../sourcefile/hdf5_dataset_per_process_handler.f90.html" xlink:title="hdf5_dataset_per_process_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1141,-54.9474 941,-54.9474 941,-30.9474 1141,-30.9474 1141,-54.9474"/>
<text text-anchor="middle" x="1041" y="-40.5474" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">hdf5_dataset_per_process_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge20" class="edge"><title>sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M859,-2.94738C882.85,-4.24677 939.895,-17.4876 983.622,-28.3849"/>
<polygon fill="#000000" stroke="#000000" points="983.025,-31.8434 993.576,-30.882 984.728,-25.0538 983.025,-31.8434"/>
</g>
<!-- sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node12" class="node"><title>sourcefile~uniform_grid_descriptor.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node12"><a xlink:href="../sourcefile/uniform_grid_descriptor.f90.html" xlink:title="uniform_grid_descriptor.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="600,-172.947 456,-172.947 456,-148.947 600,-148.947 600,-172.947"/>
<text text-anchor="middle" x="528" y="-158.547" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">uniform_grid_descriptor.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge12" class="edge"><title>sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M371.877,-35.2087C385.234,-57.9774 416.843,-107.007 456,-134.947 461.259,-138.7 467.121,-141.971 473.158,-144.806"/>
<polygon fill="#000000" stroke="#000000" points="472.16,-148.186 482.73,-148.91 474.918,-141.753 472.16,-148.186"/>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge26" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M584.744,-78.8475C619.251,-77.9111 664.463,-77.3395 704.5,-78.9474"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M706.5,-78.9474C782.45,-81.9976 964.01,-1.14305 1040,-2.94738"/>
</g>
<!-- sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node4" class="node"><title>sourcefile~spatial_grid_descriptor.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node4"><a xlink:href="../sourcefile/spatial_grid_descriptor.f90.html" xlink:title="spatial_grid_descriptor.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="775,-130.947 636,-130.947 636,-106.947 775,-106.947 775,-130.947"/>
<text text-anchor="middle" x="705.5" y="-116.547" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">spatial_grid_descriptor.f90</text>
</a>
</g>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge6" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M584.529,-92.9708C601.899,-96.7318 621.225,-100.916 639.203,-104.809"/>
<polygon fill="#000000" stroke="#000000" points="638.517,-108.241 649.031,-106.937 639.998,-101.4 638.517,-108.241"/>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge21" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M706.5,-78.9474C773.335,-81.6316 790.152,-81.2977 857,-78.9474"/>
</g>
<!-- sourcefile~hdf5_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node10" class="node"><title>sourcefile~hdf5_handler.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node10"><a xlink:href="../sourcefile/hdf5_handler.f90.html" xlink:title="hdf5_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="905,-170.947 811,-170.947 811,-146.947 905,-146.947 905,-170.947"/>
<text text-anchor="middle" x="858" y="-156.547" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">hdf5_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~hdf5_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge15" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~hdf5_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M706.5,-78.9474C738.068,-80.2152 747.597,-82.2232 775,-97.9474 794.355,-109.054 793.139,-119.569 811,-132.947 815.116,-136.031 819.636,-139.01 824.184,-141.784"/>
<polygon fill="#000000" stroke="#000000" points="822.466,-144.833 832.869,-146.837 825.986,-138.783 822.466,-144.833"/>
</g>
<!-- sourcefile~steps_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node11" class="node"><title>sourcefile~steps_handler.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node11"><a xlink:href="../sourcefile/steps_handler.f90.html" xlink:title="steps_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="754.5,-210.947 656.5,-210.947 656.5,-186.947 754.5,-186.947 754.5,-210.947"/>
<text text-anchor="middle" x="705.5" y="-196.547" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">steps_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~steps_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge10" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~steps_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M547.121,-93.131C578.204,-114.03 641.819,-156.803 677.927,-181.081"/>
<polygon fill="#000000" stroke="#000000" points="676.226,-184.155 686.478,-186.83 680.132,-178.346 676.226,-184.155"/>
</g>
<!-- sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge27" class="edge"><title>sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M859,-118.947C939.023,-110.727 963.126,-142.649 1040,-118.947"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1042,-118.947C1113.82,-96.8057 1197.27,-72.804 1250.1,-57.8231"/>
<polygon fill="#000000" stroke="#000000" points="1251.26,-61.1342 1259.92,-55.0419 1249.35,-54.399 1251.26,-61.1342"/>
</g>
<!-- sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge22" class="edge"><title>sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M775.204,-121.899C800.924,-122.229 830.359,-121.684 857,-118.947"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M859,-118.947C917.105,-112.978 978.535,-80.9382 1012.79,-60.4104"/>
<polygon fill="#000000" stroke="#000000" points="1015.01,-63.1603 1021.71,-54.957 1011.35,-57.1885 1015.01,-63.1603"/>
</g>
<!-- sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge16" class="edge"><title>sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M751.655,-130.949C767.358,-135.122 785.154,-139.852 801.59,-144.22"/>
<polygon fill="#000000" stroke="#000000" points="801.053,-147.699 811.617,-146.885 802.852,-140.934 801.053,-147.699"/>
</g>
<!-- sourcefile~hdf5_dataset_per_process_handler.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge28" class="edge"><title>sourcefile~hdf5_dataset_per_process_handler.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1141.05,-42.9474C1149.44,-42.9474 1158.02,-42.9474 1166.64,-42.9474"/>
<polygon fill="#000000" stroke="#000000" points="1166.75,-46.4475 1176.75,-42.9474 1166.75,-39.4475 1166.75,-46.4475"/>
</g>
<!-- sourcefile~xh5for_parameters.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node6" class="node"><title>sourcefile~xh5for_parameters.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node6"><a xlink:href="../sourcefile/xh5for_parameters.f90.html" xlink:title="xh5for_parameters.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="272,-132.947 151,-132.947 151,-108.947 272,-108.947 272,-132.947"/>
<text text-anchor="middle" x="211.5" y="-118.547" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_parameters.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge29" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~hdf5_structured_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M706.5,-238.947C737.834,-234.906 744.676,-228.816 775,-219.947 833.02,-202.978 848.455,-201.324 905,-179.947 966.587,-156.664 977.082,-138.346 1040,-118.947"/>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_utils.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge2" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_utils.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M226.727,-108.747C244.833,-93.5756 277.438,-67.4255 308,-48.9474 313.516,-45.6123 319.528,-42.3896 325.486,-39.4154"/>
<polygon fill="#000000" stroke="#000000" points="327.234,-42.4583 334.725,-34.9656 324.197,-36.1516 327.234,-42.4583"/>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge7" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M272.053,-117.45C299.802,-116.714 333.199,-117.104 363,-120.947"/>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge24" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M248.686,-108.909C295.787,-93.9324 380.956,-69.2041 456,-59.9474 596.729,-42.5884 633.897,-50.9562 775,-64.9474 811.791,-68.5955 820.051,-80.2465 857,-78.9474"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M859,-78.9474C902.55,-76.2111 950.991,-66.1969 986.793,-57.4232"/>
<polygon fill="#000000" stroke="#000000" points="987.688,-60.8074 996.542,-54.9885 985.992,-54.016 987.688,-60.8074"/>
</g>
<!-- sourcefile~xh5for_metadata.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node9" class="node"><title>sourcefile~xh5for_metadata.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node9"><a xlink:href="../sourcefile/xh5for_metadata.f90.html" xlink:title="xh5for_metadata.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="420,-172.947 308,-172.947 308,-148.947 420,-148.947 420,-172.947"/>
<text text-anchor="middle" x="364" y="-158.547" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_metadata.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_metadata.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge5" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_metadata.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M257.655,-132.949C273.358,-137.122 291.154,-141.852 307.59,-146.22"/>
<polygon fill="#000000" stroke="#000000" points="307.053,-149.699 317.617,-148.885 308.852,-142.934 307.053,-149.699"/>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~hdf5_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge19" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~hdf5_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M529,-238.947C606.877,-234.574 627.141,-248.924 704.5,-238.947"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M706.5,-238.947C737.834,-234.906 746.622,-233.834 775,-219.947 797.8,-208.79 820.726,-191.053 836.516,-177.574"/>
<polygon fill="#000000" stroke="#000000" points="838.85,-180.183 844.085,-170.971 834.248,-174.908 838.85,-180.183"/>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~steps_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge11" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~steps_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M365,-238.947C435.38,-254.135 455.113,-242.985 527,-238.947"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M529,-238.947C573.584,-236.444 623.076,-224.272 658.106,-214.006"/>
<polygon fill="#000000" stroke="#000000" points="659.462,-217.254 668.039,-211.033 657.455,-210.548 659.462,-217.254"/>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge14" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M221.322,-132.998C242.191,-160.155 297.765,-224.87 363,-238.947"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M365,-238.947C420.224,-250.864 478.333,-206.947 507.647,-180.185"/>
<polygon fill="#000000" stroke="#000000" points="510.238,-182.553 515.125,-173.152 505.442,-177.453 510.238,-182.553"/>
</g>
<!-- sourcefile~xdmf_utils.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node7" class="node"><title>sourcefile~xdmf_utils.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node7"><a xlink:href="../sourcefile/xdmf_utils.f90.html" xlink:title="xdmf_utils.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="251,-52.9474 172,-52.9474 172,-28.9474 251,-28.9474 251,-52.9474"/>
<text text-anchor="middle" x="211.5" y="-38.5474" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_utils.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xh5for_utils.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge3" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xh5for_utils.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M251.257,-36.3119C269.576,-34.121 291.703,-31.4747 311.416,-29.1169"/>
<polygon fill="#000000" stroke="#000000" points="311.959,-32.577 321.472,-27.9142 311.127,-25.6266 311.959,-32.577"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge8" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M226.632,-53.0484C251.935,-73.5983 307.533,-113.794 363,-120.947"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M365,-120.947C436.409,-130.157 455.158,-125.718 527,-120.947"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M529,-120.947C560.55,-118.852 595.358,-118.127 625.6,-118.005"/>
<polygon fill="#000000" stroke="#000000" points="625.676,-121.505 635.669,-117.986 625.663,-114.505 625.676,-121.505"/>
</g>
<!-- sourcefile~xdmf_parameters.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node8" class="node"><title>sourcefile~xdmf_parameters.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_node8"><a xlink:href="../sourcefile/xdmf_parameters.f90.html" xlink:title="xdmf_parameters.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="115,-52.9474 7.10543e-15,-52.9474 7.10543e-15,-28.9474 115,-28.9474 115,-52.9474"/>
<text text-anchor="middle" x="57.5" y="-38.5474" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_parameters.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_parameters.f90&#45;&gt;sourcefile~xdmf_utils.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~xdmf_parameters.f90&#45;&gt;sourcefile~xdmf_utils.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M115.099,-40.9474C130.461,-40.9474 146.956,-40.9474 161.838,-40.9474"/>
<polygon fill="#000000" stroke="#000000" points="161.849,-44.4475 171.849,-40.9474 161.849,-37.4475 161.849,-44.4475"/>
</g>
<!-- sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge9" class="edge"><title>sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M398.893,-148.878C431.292,-138.231 481.762,-123.951 527,-120.947"/>
</g>
<!-- sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge13" class="edge"><title>sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M420.298,-160.947C428.533,-160.947 437.164,-160.947 445.797,-160.947"/>
<polygon fill="#000000" stroke="#000000" points="445.91,-164.447 455.91,-160.947 445.91,-157.447 445.91,-164.447"/>
</g>
<!-- sourcefile~hdf5_handler.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge23" class="edge"><title>sourcefile~hdf5_handler.f90&#45;&gt;sourcefile~hdf5_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M881.857,-146.896C889.37,-142.708 897.671,-137.831 905,-132.947 921.868,-121.708 924.389,-116.564 941,-104.947 963.771,-89.0231 990.526,-72.3844 1010.48,-60.3576"/>
<polygon fill="#000000" stroke="#000000" points="1012.35,-63.3173 1019.13,-55.1754 1008.75,-57.3125 1012.35,-63.3173"/>
</g>
<!-- sourcefile~steps_handler.f90&#45;&gt;sourcefile~hdf5_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge17" class="edge"><title>sourcefile~steps_handler.f90&#45;&gt;sourcefile~hdf5_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M751.655,-186.946C767.358,-182.773 785.154,-178.043 801.59,-173.674"/>
<polygon fill="#000000" stroke="#000000" points="802.852,-176.961 811.617,-171.009 801.053,-170.195 802.852,-176.961"/>
</g>
<!-- sourcefile~uniform_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~EfferentGraph_edge18" class="edge"><title>sourcefile~uniform_grid_descriptor.f90&#45;&gt;sourcefile~hdf5_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M600.171,-160.513C660.301,-160.147 745.254,-159.629 800.724,-159.291"/>
<polygon fill="#000000" stroke="#000000" points="800.747,-162.791 810.726,-159.23 800.704,-155.791 800.747,-162.791"/>
</g>
</g>
</svg>
</div>
                <script>var pansourcefilehdf5_structured_dataset_per_process_handlerf90EfferentGraph = svgPanZoom('#sourcefilehdf5_structured_dataset_per_process_handlerf90EfferentGraph', {
                    zoomEnabled: true,
                    controlIconsEnabled: true,
                    fit: true,
                    center: true,});
                    </script>
                <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div>
                <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog">
                  <div class="modal-dialog modal-lg" role="document">
                    <div class="modal-content">
                      <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="-graph-help-label">Graph Key</h4>
                      </div>
                      <div class="modal-body">
                        
    <p>Nodes of different colours represent the following: </p>
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: Graph Key Pages: 1 -->
<svg width="190pt" height="32pt"
 viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)">
<title>Graph Key</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/>
<!-- Source File -->
<g id="node1" class="node"><title>Source File</title>
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/>
<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text>
</g>
<!-- This Page&#39;s Entity -->
<g id="node2" class="node"><title>This Page&#39;s Entity</title>
<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/>
<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page&#39;s Entity</text>
</g>
</g>
</svg>

    
    <p>Solid arrows point from a file to a file which depends upon it. A file 
    is dependent upon another if the latter must be compiled before the former
    can be.
    </p>
    
                      </div>
                    </div>
                  </div>
                </div>
                
    
      
      <h3>Files Dependent On This One</h3>
      
                <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph Pages: 1 -->
<svg id="sourcefilehdf5_structured_dataset_per_process_handlerf90AfferentGraph" width="641pt" height="599pt"
 viewBox="0.00 0.00 641.00 598.88" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph" class="graph" transform="scale(0.513622 0.513622) rotate(0) translate(4 1162)">
<title>sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1162 1244,-1162 1244,4 -4,4"/>
<!-- sourcefile~hdf5_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node1" class="node"><title>sourcefile~hdf5_structured_dataset_per_process_handler.f90</title>
<polygon fill="none" stroke="black" points="254,-591 -1.42109e-14,-591 -1.42109e-14,-567 254,-567 254,-591"/>
<text text-anchor="middle" x="127" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50">hdf5_structured_dataset_per_process_handler.f90</text>
</g>
<!-- sourcefile~test_hdf5_rectilinear_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node2" class="node"><title>sourcefile~test_hdf5_rectilinear_dataset_per_process_handler.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node2"><a xlink:href="../sourcefile/test_hdf5_rectilinear_dataset_per_process_handler.f90.html" xlink:title="test_hdf5_rectilinear_dataset_per_process_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="566,-633 290,-633 290,-609 566,-609 566,-633"/>
<text text-anchor="middle" x="428" y="-618.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_hdf5_rectilinear_dataset_per_process_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~hdf5_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_hdf5_rectilinear_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge32" class="edge"><title>sourcefile~hdf5_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_hdf5_rectilinear_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M213.681,-591.036C250.512,-596.209 293.704,-602.276 331.554,-607.593"/>
<polygon fill="#000000" stroke="#000000" points="331.175,-611.074 341.565,-608.999 332.149,-604.142 331.175,-611.074"/>
</g>
<!-- sourcefile~structured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node3" class="node"><title>sourcefile~structured_dataset_per_process_factory.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node3"><a xlink:href="../sourcefile/structured_dataset_per_process_factory.f90.html" xlink:title="structured_dataset_per_process_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="539.5,-591 316.5,-591 316.5,-567 539.5,-567 539.5,-591"/>
<text text-anchor="middle" x="428" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">structured_dataset_per_process_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~hdf5_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge33" class="edge"><title>sourcefile~hdf5_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M254.37,-579C271.396,-579 288.833,-579 305.767,-579"/>
<polygon fill="#000000" stroke="#000000" points="306.239,-582.5 316.238,-579 306.238,-575.5 306.239,-582.5"/>
</g>
<!-- sourcefile~test_hdf5_regular_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node4" class="node"><title>sourcefile~test_hdf5_regular_dataset_per_process_handler.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node4"><a xlink:href="../sourcefile/test_hdf5_regular_dataset_per_process_handler.f90.html" xlink:title="test_hdf5_regular_dataset_per_process_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="559.5,-549 296.5,-549 296.5,-525 559.5,-525 559.5,-549"/>
<text text-anchor="middle" x="428" y="-534.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_hdf5_regular_dataset_per_process_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~hdf5_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_hdf5_regular_dataset_per_process_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge34" class="edge"><title>sourcefile~hdf5_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_hdf5_regular_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M213.681,-566.964C250.512,-561.791 293.704,-555.724 331.554,-550.407"/>
<polygon fill="#000000" stroke="#000000" points="332.149,-553.858 341.565,-549.001 331.175,-546.926 332.149,-553.858"/>
</g>
<!-- sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node5" class="node"><title>sourcefile~xh5for_factory.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node5"><a xlink:href="../sourcefile/xh5for_factory.f90.html" xlink:title="xh5for_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="701,-591 602,-591 602,-567 701,-567 701,-591"/>
<text text-anchor="middle" x="651.5" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~structured_dataset_per_process_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge31" class="edge"><title>sourcefile~structured_dataset_per_process_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M539.75,-579C557.672,-579 575.593,-579 591.637,-579"/>
<polygon fill="#000000" stroke="#000000" points="591.891,-582.5 601.891,-579 591.891,-575.5 591.891,-582.5"/>
</g>
<!-- sourcefile~xh5for_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node6" class="node"><title>sourcefile~xh5for_handler.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node6"><a xlink:href="../sourcefile/xh5for_handler.f90.html" xlink:title="xh5for_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="840,-591 737,-591 737,-567 840,-567 840,-591"/>
<text text-anchor="middle" x="788.5" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_factory.f90&#45;&gt;sourcefile~xh5for_handler.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge30" class="edge"><title>sourcefile~xh5for_factory.f90&#45;&gt;sourcefile~xh5for_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M701.238,-579C709.4,-579 717.959,-579 726.384,-579"/>
<polygon fill="#000000" stroke="#000000" points="726.559,-582.5 736.558,-579 726.558,-575.5 726.559,-582.5"/>
</g>
<!-- sourcefile~xh5for.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node7" class="node"><title>sourcefile~xh5for.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node7"><a xlink:href="../sourcefile/xh5for.f90.html" xlink:title="xh5for.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="937,-591 876,-591 876,-567 937,-567 937,-591"/>
<text text-anchor="middle" x="906.5" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_handler.f90&#45;&gt;sourcefile~xh5for.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge29" class="edge"><title>sourcefile~xh5for_handler.f90&#45;&gt;sourcefile~xh5for.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M840.042,-579C848.628,-579 857.435,-579 865.695,-579"/>
<polygon fill="#000000" stroke="#000000" points="865.806,-582.5 875.806,-579 865.806,-575.5 865.806,-582.5"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node8" class="node"><title>sourcefile~xh5for_dpp_unstructured_tetrahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node8"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_tetrahedron.f90.html" xlink:title="xh5for_dpp_unstructured_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1212.5,-1158 1000.5,-1158 1000.5,-1134 1212.5,-1134 1212.5,-1158"/>
<text text-anchor="middle" x="1106.5" y="-1143.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.106,-591.445C912.004,-669.097 934.592,-1085.11 973,-1125 978.276,-1130.48 984.361,-1134.9 990.965,-1138.45"/>
<polygon fill="#000000" stroke="#000000" points="989.718,-1141.73 1000.26,-1142.76 992.662,-1135.38 989.718,-1141.73"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_hexahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node9" class="node"><title>sourcefile~xh5for_dpp_unstructured_hexahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node9"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_hexahedron.f90.html" xlink:title="xh5for_dpp_unstructured_hexahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1213.5,-1116 999.5,-1116 999.5,-1092 1213.5,-1092 1213.5,-1116"/>
<text text-anchor="middle" x="1106.5" y="-1101.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_hexahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_hexahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge2" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_hexahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.201,-591.289C905.76,-661.4 902.259,-1010.25 973,-1083 978.018,-1088.16 983.756,-1092.38 989.967,-1095.81"/>
<polygon fill="#000000" stroke="#000000" points="988.842,-1099.15 999.375,-1100.3 991.853,-1092.84 988.842,-1099.15"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node10" class="node"><title>sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node10"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_non_static_tetrahedron.f90.html" xlink:title="xh5for_dpp_unstructured_non_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1240,-1074 973,-1074 973,-1050 1240,-1050 1240,-1074"/>
<text text-anchor="middle" x="1106.5" y="-1059.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_non_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge3" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.361,-591.127C906.866,-657.366 907.949,-974.877 973,-1041 973.817,-1041.83 974.652,-1042.64 975.505,-1043.42"/>
<polygon fill="#000000" stroke="#000000" points="973.611,-1046.38 983.629,-1049.83 977.948,-1040.89 973.611,-1046.38"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_static_mixed_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node11" class="node"><title>sourcefile~xh5for_ch_unstructured_static_mixed_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node11"><a xlink:href="../sourcefile/xh5for_ch_unstructured_static_mixed_series.f90.html" xlink:title="xh5for_ch_unstructured_static_mixed_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1228.5,-1032 984.5,-1032 984.5,-1008 1228.5,-1008 1228.5,-1032"/>
<text text-anchor="middle" x="1106.5" y="-1017.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_static_mixed_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_mixed_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge4" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_mixed_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.55,-591.248C908.072,-654.077 913.715,-939.568 973,-999 973.971,-999.974 974.969,-1000.91 975.99,-1001.82"/>
<polygon fill="#000000" stroke="#000000" points="974.193,-1004.85 984.261,-1008.15 978.449,-999.296 974.193,-1004.85"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node12" class="node"><title>sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node12"><a xlink:href="../sourcefile/xh5for_ch_unstructured_non_static_tetrahedron.f90.html" xlink:title="xh5for_ch_unstructured_non_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1236.5,-990 976.5,-990 976.5,-966 1236.5,-966 1236.5,-990"/>
<text text-anchor="middle" x="1106.5" y="-975.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_non_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge5" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.779,-591.18C909.39,-650.02 919.401,-904.167 973,-957 973.956,-957.943 974.937,-958.854 975.94,-959.734"/>
<polygon fill="#000000" stroke="#000000" points="973.966,-962.629 984.046,-965.892 978.2,-957.055 973.966,-962.629"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_quadilateral.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node13" class="node"><title>sourcefile~xh5for_ch_unstructured_quadilateral.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node13"><a xlink:href="../sourcefile/xh5for_ch_unstructured_quadilateral.f90.html" xlink:title="xh5for_ch_unstructured_quadilateral.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1209,-948 1004,-948 1004,-924 1209,-924 1209,-948"/>
<text text-anchor="middle" x="1106.5" y="-933.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_quadilateral.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_quadilateral.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge6" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_quadilateral.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.07,-591.271C910.879,-646.193 925.108,-868.772 973,-915 979.263,-921.046 986.522,-925.773 994.351,-929.44"/>
<polygon fill="#000000" stroke="#000000" points="993.198,-932.749 1003.78,-933.271 995.833,-926.264 993.198,-932.749"/>
</g>
<!-- sourcefile~xh5for_dpp_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node14" class="node"><title>sourcefile~xh5for_dpp_regular_non_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node14"><a xlink:href="../sourcefile/xh5for_dpp_regular_non_static_grid_series.f90.html" xlink:title="xh5for_dpp_regular_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1225.5,-906 987.5,-906 987.5,-882 1225.5,-882 1225.5,-906"/>
<text text-anchor="middle" x="1106.5" y="-891.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_regular_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge7" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.421,-591.077C912.508,-641.349 930.703,-833.248 973,-873 974.758,-874.652 976.591,-876.205 978.49,-877.664"/>
<polygon fill="#000000" stroke="#000000" points="976.946,-880.841 987.208,-883.476 980.828,-875.017 976.946,-880.841"/>
</g>
<!-- sourcefile~xh5for_ch_regular_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node15" class="node"><title>sourcefile~xh5for_ch_regular_grid.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node15"><a xlink:href="../sourcefile/xh5for_ch_regular_grid.f90.html" xlink:title="xh5for_ch_regular_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1177.5,-864 1035.5,-864 1035.5,-840 1177.5,-840 1177.5,-864"/>
<text text-anchor="middle" x="1106.5" y="-849.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_regular_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge8" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.912,-591.186C914.469,-636.965 936.342,-797.74 973,-831 987.321,-843.994 1006.29,-850.768 1025.39,-853.991"/>
<polygon fill="#000000" stroke="#000000" points="1024.97,-857.467 1035.36,-855.366 1025.93,-850.533 1024.97,-857.467"/>
</g>
<!-- sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node16" class="node"><title>sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node16"><a xlink:href="../sourcefile/xh5for_ch_rectilinear_non_static_grid_series.f90.html" xlink:title="xh5for_ch_rectilinear_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1228.5,-822 984.5,-822 984.5,-798 1228.5,-798 1228.5,-822"/>
<text text-anchor="middle" x="1106.5" y="-807.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_rectilinear_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge9" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.21,-591.042C907.048,-627.298 911.893,-736.177 973,-789 974.333,-790.152 975.702,-791.254 977.105,-792.308"/>
<polygon fill="#000000" stroke="#000000" points="975.209,-795.251 985.484,-797.838 979.065,-789.408 975.209,-795.251"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_triangles.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node17" class="node"><title>sourcefile~xh5for_ch_unstructured_triangles.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node17"><a xlink:href="../sourcefile/xh5for_ch_unstructured_triangles.f90.html" xlink:title="xh5for_ch_unstructured_triangles.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1201.5,-780 1011.5,-780 1011.5,-756 1201.5,-756 1201.5,-780"/>
<text text-anchor="middle" x="1106.5" y="-765.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_triangles.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_triangles.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge10" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_triangles.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.273,-591.093C910.97,-622.414 922.779,-706.545 973,-747 981.471,-753.824 991.261,-758.857 1001.61,-762.525"/>
<polygon fill="#000000" stroke="#000000" points="1000.65,-765.894 1011.24,-765.522 1002.73,-759.21 1000.65,-765.894"/>
</g>
<!-- sourcefile~xh5for_ch_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node18" class="node"><title>sourcefile~xh5for_ch_regular_non_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node18"><a xlink:href="../sourcefile/xh5for_ch_regular_non_static_grid_series.f90.html" xlink:title="xh5for_ch_regular_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1222,-738 991,-738 991,-714 1222,-714 1222,-738"/>
<text text-anchor="middle" x="1106.5" y="-723.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_regular_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge11" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M909.964,-591.078C915.87,-616.697 933.392,-676.466 973,-705 975.874,-707.071 978.875,-708.97 981.977,-710.71"/>
<polygon fill="#000000" stroke="#000000" points="980.455,-713.862 990.965,-715.204 983.586,-707.601 980.455,-713.862"/>
</g>
<!-- sourcefile~xh5for_ch_regular_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node19" class="node"><title>sourcefile~xh5for_ch_regular_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node19"><a xlink:href="../sourcefile/xh5for_ch_regular_static_grid_series.f90.html" xlink:title="xh5for_ch_regular_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1210,-696 1003,-696 1003,-672 1210,-672 1210,-696"/>
<text text-anchor="middle" x="1106.5" y="-681.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_regular_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge12" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M913.174,-591.094C922.676,-609.882 943.691,-645.715 973,-663 979.344,-666.742 986.144,-669.879 993.188,-672.505"/>
<polygon fill="#000000" stroke="#000000" points="992.333,-675.91 1002.93,-675.777 994.562,-669.275 992.333,-675.91"/>
</g>
<!-- sourcefile~xh5for_dpp_rectilinear_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node20" class="node"><title>sourcefile~xh5for_dpp_rectilinear_grid.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node20"><a xlink:href="../sourcefile/xh5for_dpp_rectilinear_grid.f90.html" xlink:title="xh5for_dpp_rectilinear_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1187,-654 1026,-654 1026,-630 1187,-630 1187,-654"/>
<text text-anchor="middle" x="1106.5" y="-639.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_rectilinear_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge13" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M922.404,-591.126C935.086,-600.787 954.189,-613.84 973,-621 986.53,-626.15 1001.3,-630.036 1015.91,-632.97"/>
<polygon fill="#000000" stroke="#000000" points="1015.51,-636.456 1025.98,-634.853 1016.8,-629.575 1015.51,-636.456"/>
</g>
<!-- sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node21" class="node"><title>sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node21"><a xlink:href="../sourcefile/xh5for_dpp_rectilinear_static_grid_series.f90.html" xlink:title="xh5for_dpp_rectilinear_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1219.5,-612 993.5,-612 993.5,-588 1219.5,-588 1219.5,-612"/>
<text text-anchor="middle" x="1106.5" y="-597.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_rectilinear_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge14" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M937.143,-582.144C950.039,-583.512 966.09,-585.214 983.121,-587.02"/>
<polygon fill="#000000" stroke="#000000" points="982.931,-590.52 993.245,-588.094 983.67,-583.559 982.931,-590.52"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node22" class="node"><title>sourcefile~xh5for_dpp_unstructured_mixedtopology.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node22"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_mixedtopology.f90.html" xlink:title="xh5for_dpp_unstructured_mixedtopology.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1219.5,-570 993.5,-570 993.5,-546 1219.5,-546 1219.5,-570"/>
<text text-anchor="middle" x="1106.5" y="-555.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_mixedtopology.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge15" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_mixedtopology.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M937.143,-575.856C950.039,-574.488 966.09,-572.786 983.121,-570.98"/>
<polygon fill="#000000" stroke="#000000" points="983.67,-574.441 993.245,-569.906 982.931,-567.48 983.67,-574.441"/>
</g>
<!-- sourcefile~xh5for_dpp_regular_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node23" class="node"><title>sourcefile~xh5for_dpp_regular_grid.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node23"><a xlink:href="../sourcefile/xh5for_dpp_regular_grid.f90.html" xlink:title="xh5for_dpp_regular_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1180.5,-528 1032.5,-528 1032.5,-504 1180.5,-504 1180.5,-528"/>
<text text-anchor="middle" x="1106.5" y="-513.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_regular_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge16" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M922.404,-566.874C935.086,-557.213 954.189,-544.16 973,-537 988.412,-531.134 1005.43,-526.906 1022,-523.86"/>
<polygon fill="#000000" stroke="#000000" points="1022.97,-527.245 1032.23,-522.111 1021.79,-520.345 1022.97,-527.245"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node24" class="node"><title>sourcefile~xh5for_ch_unstructured_tetrahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node24"><a xlink:href="../sourcefile/xh5for_ch_unstructured_tetrahedron.f90.html" xlink:title="xh5for_ch_unstructured_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1209,-486 1004,-486 1004,-462 1209,-462 1209,-486"/>
<text text-anchor="middle" x="1106.5" y="-471.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge17" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M913.174,-566.906C922.676,-548.118 943.691,-512.285 973,-495 979.7,-491.048 986.907,-487.771 994.375,-485.058"/>
<polygon fill="#000000" stroke="#000000" points="995.544,-488.358 1003.96,-481.916 993.363,-481.707 995.544,-488.358"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_triangles.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node25" class="node"><title>sourcefile~xh5for_dpp_unstructured_triangles.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node25"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_triangles.f90.html" xlink:title="xh5for_dpp_unstructured_triangles.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1205,-444 1008,-444 1008,-420 1205,-420 1205,-444"/>
<text text-anchor="middle" x="1106.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_triangles.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_triangles.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge18" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_triangles.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M909.964,-566.922C915.87,-541.303 933.392,-481.534 973,-453 980.714,-447.443 989.337,-443.124 998.383,-439.79"/>
<polygon fill="#000000" stroke="#000000" points="999.527,-443.098 1007.94,-436.661 997.349,-436.445 999.527,-443.098"/>
</g>
<!-- sourcefile~xh5for_dpp_regular_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node26" class="node"><title>sourcefile~xh5for_dpp_regular_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node26"><a xlink:href="../sourcefile/xh5for_dpp_regular_static_grid_series.f90.html" xlink:title="xh5for_dpp_regular_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1213.5,-402 999.5,-402 999.5,-378 1213.5,-378 1213.5,-402"/>
<text text-anchor="middle" x="1106.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_regular_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge19" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.273,-566.907C910.97,-535.586 922.779,-451.455 973,-411 978.301,-406.73 984.119,-403.161 990.266,-400.189"/>
<polygon fill="#000000" stroke="#000000" points="991.666,-403.397 999.486,-396.249 988.915,-396.96 991.666,-403.397"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node27" class="node"><title>sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node27"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_static_tetrahedron.f90.html" xlink:title="xh5for_dpp_unstructured_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1228,-360 985,-360 985,-336 1228,-336 1228,-360"/>
<text text-anchor="middle" x="1106.5" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge20" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.21,-566.958C907.048,-530.702 911.893,-421.823 973,-369 974.333,-367.848 975.702,-366.746 977.105,-365.692"/>
<polygon fill="#000000" stroke="#000000" points="979.065,-368.592 985.484,-360.162 975.209,-362.749 979.065,-368.592"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node28" class="node"><title>sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node28"><a xlink:href="../sourcefile/xh5for_ch_unstructured_hexahedron_perf.f90.html" xlink:title="xh5for_ch_unstructured_hexahedron_perf.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1222.5,-318 990.5,-318 990.5,-294 1222.5,-294 1222.5,-318"/>
<text text-anchor="middle" x="1106.5" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_hexahedron_perf.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge21" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.912,-566.814C914.469,-521.035 936.342,-360.26 973,-327 975.713,-324.539 978.592,-322.301 981.607,-320.268"/>
<polygon fill="#000000" stroke="#000000" points="983.6,-323.156 990.44,-315.066 980.047,-317.125 983.6,-323.156"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node29" class="node"><title>sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node29"><a xlink:href="../sourcefile/xh5for_ch_unstructured_static_tetrahedron.f90.html" xlink:title="xh5for_ch_unstructured_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1224.5,-276 988.5,-276 988.5,-252 1224.5,-252 1224.5,-276"/>
<text text-anchor="middle" x="1106.5" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge22" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.421,-566.923C912.508,-516.651 930.703,-324.752 973,-285 975.188,-282.944 977.491,-281.042 979.893,-279.283"/>
<polygon fill="#000000" stroke="#000000" points="981.869,-282.174 988.413,-273.841 978.102,-276.274 981.869,-282.174"/>
</g>
<!-- sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node30" class="node"><title>sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node30"><a xlink:href="../sourcefile/xh5for_dpp_rectilinear_non_static_grid_series.f90.html" xlink:title="xh5for_dpp_rectilinear_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1231.5,-234 981.5,-234 981.5,-210 1231.5,-210 1231.5,-234"/>
<text text-anchor="middle" x="1106.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_rectilinear_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge23" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.07,-566.729C910.879,-511.807 925.108,-289.228 973,-243 973.99,-242.045 975.004,-241.122 976.042,-240.232"/>
<polygon fill="#000000" stroke="#000000" points="978.479,-242.782 984.425,-234.012 974.308,-237.16 978.479,-242.782"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node31" class="node"><title>sourcefile~xh5for_ch_unstructured_mixedtopology.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node31"><a xlink:href="../sourcefile/xh5for_ch_unstructured_mixedtopology.f90.html" xlink:title="xh5for_ch_unstructured_mixedtopology.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1216,-192 997,-192 997,-168 1216,-168 1216,-192"/>
<text text-anchor="middle" x="1106.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_mixedtopology.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge24" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_mixedtopology.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.779,-566.82C909.39,-507.98 919.401,-253.833 973,-201 977.41,-196.653 982.333,-192.983 987.615,-189.895"/>
<polygon fill="#000000" stroke="#000000" points="989.478,-192.875 996.815,-185.232 986.313,-186.631 989.478,-192.875"/>
</g>
<!-- sourcefile~xh5for_ch_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node32" class="node"><title>sourcefile~xh5for_ch_rectilinear_static_grid_series.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node32"><a xlink:href="../sourcefile/xh5for_ch_rectilinear_static_grid_series.f90.html" xlink:title="xh5for_ch_rectilinear_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1216.5,-150 996.5,-150 996.5,-126 1216.5,-126 1216.5,-150"/>
<text text-anchor="middle" x="1106.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_rectilinear_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge25" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.55,-566.752C908.072,-503.923 913.715,-218.432 973,-159 977.32,-154.669 982.149,-151.006 987.336,-147.919"/>
<polygon fill="#000000" stroke="#000000" points="989.097,-150.948 996.377,-143.251 985.886,-144.728 989.097,-150.948"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_quadilateral.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node33" class="node"><title>sourcefile~xh5for_dpp_unstructured_quadilateral.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node33"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_quadilateral.f90.html" xlink:title="xh5for_dpp_unstructured_quadilateral.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1212.5,-108 1000.5,-108 1000.5,-84 1212.5,-84 1212.5,-108"/>
<text text-anchor="middle" x="1106.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_quadilateral.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_quadilateral.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge26" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_quadilateral.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.361,-566.873C906.866,-500.634 907.949,-183.123 973,-117 978.334,-111.578 984.463,-107.198 991.098,-103.681"/>
<polygon fill="#000000" stroke="#000000" points="992.798,-106.752 1000.43,-99.4054 989.883,-100.388 992.798,-106.752"/>
</g>
<!-- sourcefile~xh5for_ch_rectilinear_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node34" class="node"><title>sourcefile~xh5for_ch_rectilinear_grid.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node34"><a xlink:href="../sourcefile/xh5for_ch_rectilinear_grid.f90.html" xlink:title="xh5for_ch_rectilinear_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1183.5,-66 1029.5,-66 1029.5,-42 1183.5,-42 1183.5,-66"/>
<text text-anchor="middle" x="1106.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_rectilinear_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_grid.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge27" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M907.201,-566.711C905.76,-496.6 902.259,-147.747 973,-75 985.284,-62.368 1001.88,-55.368 1019.16,-51.7744"/>
<polygon fill="#000000" stroke="#000000" points="1020.12,-55.1619 1029.39,-50.0354 1018.95,-48.2609 1020.12,-55.1619"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_hexahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node35" class="node"><title>sourcefile~xh5for_ch_unstructured_hexahedron.f90</title>
<g id="a_sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_node35"><a xlink:href="../sourcefile/xh5for_ch_unstructured_hexahedron.f90.html" xlink:title="xh5for_ch_unstructured_hexahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1210,-24 1003,-24 1003,-0 1210,-0 1210,-24"/>
<text text-anchor="middle" x="1106.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_hexahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron.f90 -->
<g id="sourcefile~~hdf5_structured_dataset_per_process_handler.f90~~AfferentGraph_edge28" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M908.106,-566.555C912.004,-488.903 934.592,-72.8877 973,-33 978.98,-26.7898 986.001,-21.9365 993.636,-18.1775"/>
<polygon fill="#000000" stroke="#000000" points="995.027,-21.3894 1002.86,-14.2516 992.285,-14.9489 995.027,-21.3894"/>
</g>
</g>
</svg>
</div>
                <script>var pansourcefilehdf5_structured_dataset_per_process_handlerf90AfferentGraph = svgPanZoom('#sourcefilehdf5_structured_dataset_per_process_handlerf90AfferentGraph', {
                    zoomEnabled: true,
                    controlIconsEnabled: true,
                    fit: true,
                    center: true,});
                    </script>
                <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div>
                <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog">
                  <div class="modal-dialog modal-lg" role="document">
                    <div class="modal-content">
                      <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="-graph-help-label">Graph Key</h4>
                      </div>
                      <div class="modal-body">
                        
    <p>Nodes of different colours represent the following: </p>
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: Graph Key Pages: 1 -->
<svg width="190pt" height="32pt"
 viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)">
<title>Graph Key</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/>
<!-- Source File -->
<g id="node1" class="node"><title>Source File</title>
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/>
<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text>
</g>
<!-- This Page&#39;s Entity -->
<g id="node2" class="node"><title>This Page&#39;s Entity</title>
<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/>
<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page&#39;s Entity</text>
</g>
</g>
</svg>

    
    <p>Solid arrows point from a file to a file which depends upon it. A file 
    is dependent upon another if the latter must be compiled before the former
    can be.
    </p>
    
                      </div>
                    </div>
                  </div>
                </div>
                
      
      <br>

    <section class="visible-xs visible-sm hidden-md">
      






<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div>
  <div id="mods-1" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/hdf5_structured_dataset_per_process_handler.html">hdf5_structured_dataset_per_process_handler</a>
      
    </div>
  </div>
</div>















<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
  <div class="list-group">
    <a class="list-group-item" href="../sourcefile/hdf5_structured_dataset_per_process_handler.f90.html#src">hdf5_structured_dataset_per_process_handler.f90</a>
  </div>
</div>


    </section>
    <br class="visible-xs visible-sm hidden-md">

    <section>
      <h2><span class="anchor" id="src"></span>Source Code</h2>
    <div class="hl"><pre><a name="ln-1"></a><span class="k">module </span><span class="n">hdf5_structured_dataset_per_process_handler</span>
<a name="ln-2"></a>
<a name="ln-3"></a><span class="k">use </span><span class="n">PENF</span><span class="p">,</span> <span class="n">only</span> <span class="p">:</span> <span class="n">I4P</span><span class="p">,</span> <span class="n">I8P</span><span class="p">,</span> <span class="n">R4P</span><span class="p">,</span> <span class="n">R8P</span><span class="p">,</span> <span class="n">str</span>
<a name="ln-4"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-5"></a><span class="k">use </span><span class="n">HDF5</span>
<a name="ln-6"></a><span class="cp">#endif</span>
<a name="ln-7"></a><span class="k">use </span><span class="n">hdf5_dataset_per_process_handler</span>
<a name="ln-8"></a><span class="k">use </span><span class="n">xh5for_utils</span>
<a name="ln-9"></a><span class="k">use </span><span class="n">xh5for_parameters</span>
<a name="ln-10"></a><span class="k">use </span><span class="n">mpi_environment</span>
<a name="ln-11"></a><span class="k">use </span><span class="n">spatial_grid_descriptor</span>
<a name="ln-12"></a>
<a name="ln-13"></a><span class="k">implicit none</span>
<a name="ln-14"></a>
<a name="ln-15"></a><span class="cp">#include &quot;assert.i90&quot;</span>
<a name="ln-16"></a>
<a name="ln-17"></a><span class="k">private</span>
<a name="ln-18"></a>
<a name="ln-19"></a><span class="k">    type</span><span class="p">,</span> <span class="k">extends</span><span class="p">(</span><span class="n">hdf5_dataset_per_process_handler_t</span><span class="p">)</span> <span class="kd">::</span> <span class="n">hdf5_structured_dataset_per_process_handler_t</span>
<a name="ln-20"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-21"></a>    <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-22"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-23"></a>    <span class="k">contains</span>
<a name="ln-24"></a><span class="k">    private</span>
<a name="ln-25"></a><span class="k">        procedure</span> <span class="kd">::</span> <span class="n">WriteGeometry_XYZ_R4P</span>    <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteGeometry_XYZ_R4P</span>
<a name="ln-26"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">WriteGeometry_XYZ_R8P</span>    <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteGeometry_XYZ_R8P</span>
<a name="ln-27"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">WriteGeometry_X_Y_Z_R4P</span>  <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteGeometry_X_Y_Z_R4P</span>
<a name="ln-28"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">WriteGeometry_X_Y_Z_R8P</span>  <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteGeometry_X_Y_Z_R8P</span>
<a name="ln-29"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">WriteGeometry_DXDYDZ_R4P</span> <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteGeometry_DXDYDZ_R4P</span>
<a name="ln-30"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">WriteGeometry_DXDYDZ_R8P</span> <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteGeometry_DXDYDZ_R8P</span>
<a name="ln-31"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadGeometry_XYZ_R4P</span>     <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadGeometry_XYZ_R4P</span>
<a name="ln-32"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadGeometry_XYZ_R8P</span>     <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadGeometry_XYZ_R8P</span>
<a name="ln-33"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadGeometry_X_Y_Z_R4P</span>   <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadGeometry_X_Y_Z_R4P</span>
<a name="ln-34"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadGeometry_DXDYDZ_R4P</span>  <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadGeometry_DXDYDZ_R4P</span>
<a name="ln-35"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadGeometry_DXDYDZ_R8P</span>  <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadGeometry_DXDYDZ_R8P</span>
<a name="ln-36"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadGeometry_X_Y_Z_R8P</span>   <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadGeometry_X_Y_Z_R8P</span>
<a name="ln-37"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">WriteTopology_I4P</span>        <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteTopology_I4P</span>
<a name="ln-38"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">WriteTopology_I8P</span>        <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_WriteTopology_I8P</span>
<a name="ln-39"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadTopology_I4P</span>         <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadTopology_I4P</span>
<a name="ln-40"></a>        <span class="k">procedure</span> <span class="kd">::</span> <span class="n">ReadTopology_I8P</span>         <span class="o">=&gt;</span> <span class="n">hdf5_structured_dataset_per_process_ReadTopology_I8P</span>
<a name="ln-41"></a>    <span class="k">end type </span><span class="n">hdf5_structured_dataset_per_process_handler_t</span>
<a name="ln-42"></a>
<a name="ln-43"></a><span class="k">public</span> <span class="kd">::</span> <span class="n">hdf5_structured_dataset_per_process_handler_t</span>
<a name="ln-44"></a>
<a name="ln-45"></a><span class="k">contains</span>
<a name="ln-46"></a>
<a name="ln-47"></a><span class="k">    subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_XYZ_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">XYZ</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-48"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-49"></a>    <span class="c">!&lt; Writes R4P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-50"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-51"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for Unstructured grids</span>
<a name="ln-52"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">XYZ</span><span class="p">(:)</span>                <span class="c">!&lt; Grid coordinates</span>
<a name="ln-53"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-54"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">LocalGeometrySize</span>     <span class="c">!&lt; Local size of the geometry hyperslab</span>
<a name="ln-55"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">GridID</span>                <span class="c">!&lt; Index to loop on GridID&#39;s</span>
<a name="ln-56"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-57"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-58"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-59"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-60"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-61"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-62"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-63"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-64"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-65"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-66"></a>        <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-67"></a>            <span class="n">LocalGeometrySize</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-68"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                           <span class="p">&amp;</span>
<a name="ln-69"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-70"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                   <span class="p">&amp;</span>
<a name="ln-71"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                           <span class="p">&amp;</span>
<a name="ln-72"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                   <span class="p">&amp;</span>
<a name="ln-73"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">XYZ</span><span class="p">)</span>
<a name="ln-74"></a>        <span class="n">enddo</span>
<a name="ln-75"></a>        <span class="n">LocalGeometrySize</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-76"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                       <span class="p">&amp;</span>
<a name="ln-77"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-78"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                                           <span class="p">&amp;</span>
<a name="ln-79"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                   <span class="p">&amp;</span>
<a name="ln-80"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                                           <span class="p">&amp;</span>
<a name="ln-81"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">XYZ</span><span class="p">)</span>
<a name="ln-82"></a><span class="cp">#endif</span>
<a name="ln-83"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_XYZ_R4P</span>
<a name="ln-84"></a>
<a name="ln-85"></a>
<a name="ln-86"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_XYZ_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">XYZ</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-87"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-88"></a>    <span class="c">!&lt; Writes R8P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-89"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-90"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-91"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">XYZ</span><span class="p">(:)</span>                <span class="c">!&lt; Grid coordinates</span>
<a name="ln-92"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-93"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">LocalGeometrySize</span>     <span class="c">!&lt; Local size of the geometry hyperslab</span>
<a name="ln-94"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">GridID</span>                <span class="c">!&lt; Index to loop on GridID&#39;s</span>
<a name="ln-95"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-96"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-97"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-98"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-99"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-100"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-101"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-102"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-103"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-104"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-105"></a>        <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-106"></a>            <span class="n">LocalGeometrySize</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-107"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                           <span class="p">&amp;</span>
<a name="ln-108"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-109"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                   <span class="p">&amp;</span>
<a name="ln-110"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                           <span class="p">&amp;</span>
<a name="ln-111"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                   <span class="p">&amp;</span>
<a name="ln-112"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">XYZ</span><span class="p">)</span>
<a name="ln-113"></a>        <span class="n">enddo</span>
<a name="ln-114"></a>        <span class="n">LocalGeometrySize</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-115"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                       <span class="p">&amp;</span>
<a name="ln-116"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-117"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                                           <span class="p">&amp;</span>
<a name="ln-118"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                   <span class="p">&amp;</span>
<a name="ln-119"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="o">/</span><span class="p">),</span>                                                           <span class="p">&amp;</span>
<a name="ln-120"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">XYZ</span><span class="p">)</span>
<a name="ln-121"></a><span class="cp">#endif</span>
<a name="ln-122"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_XYZ_R8P</span>
<a name="ln-123"></a>
<a name="ln-124"></a>
<a name="ln-125"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_X_Y_Z_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-126"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-127"></a>    <span class="c">!&lt; Writes R4P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-128"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-129"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-130"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">X</span><span class="p">(:)</span>                  <span class="c">!&lt; X Grid coordinates</span>
<a name="ln-131"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Y</span><span class="p">(:)</span>                  <span class="c">!&lt; Y Grid coordinates</span>
<a name="ln-132"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Z</span><span class="p">(:)</span>                  <span class="c">!&lt; Z Grid coordinates</span>
<a name="ln-133"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-134"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="c">!&lt; Total number of nodes per axis</span>
<a name="ln-135"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">SpaceDimension</span>        <span class="c">!&lt; Space dimension</span>
<a name="ln-136"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">GridID</span>                <span class="c">!&lt; Index to loop on GridID&#39;s</span>
<a name="ln-137"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-138"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-139"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-140"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-141"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-142"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-143"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-144"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-145"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-146"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-147"></a>        <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-148"></a>            <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">,</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-149"></a>            <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">,</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-150"></a>            <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">,</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">3</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-151"></a>            <span class="n">SpaceDimension</span> <span class="o">=</span> <span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">))</span>
<a name="ln-152"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                 <span class="p">&amp;</span>
<a name="ln-153"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;X_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-154"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-155"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-156"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-157"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">X</span><span class="p">)</span>
<a name="ln-158"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                 <span class="p">&amp;</span>
<a name="ln-159"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Y_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-160"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-161"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-162"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-163"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">Y</span><span class="p">)</span>
<a name="ln-164"></a>            <span class="k">if</span><span class="p">(</span><span class="n">SpaceDimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="k">then</span>
<a name="ln-165"></a><span class="k">                call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                 <span class="p">&amp;</span>
<a name="ln-166"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Z_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-167"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-168"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-169"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-170"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Z</span><span class="p">)</span>
<a name="ln-171"></a>            <span class="n">endif</span>
<a name="ln-172"></a>        <span class="n">enddo</span>
<a name="ln-173"></a>        <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">(),</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-174"></a>        <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">(),</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-175"></a>        <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">(),</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">3</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-176"></a>        <span class="n">SpaceDimension</span> <span class="o">=</span> <span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))</span>
<a name="ln-177"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                         <span class="p">&amp;</span>
<a name="ln-178"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;X_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-179"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-180"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-181"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-182"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">X</span><span class="p">)</span>
<a name="ln-183"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                         <span class="p">&amp;</span>
<a name="ln-184"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Y_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-185"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-186"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-187"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-188"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">Y</span><span class="p">)</span>
<a name="ln-189"></a>        <span class="k">if</span><span class="p">(</span><span class="n">SpaceDimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="k">then</span>
<a name="ln-190"></a><span class="k">            call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                         <span class="p">&amp;</span>
<a name="ln-191"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Z_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-192"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-193"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-194"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-195"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">Z</span><span class="p">)</span>
<a name="ln-196"></a>        <span class="n">endif</span>
<a name="ln-197"></a><span class="cp">#endif</span>
<a name="ln-198"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_X_Y_Z_R4P</span>
<a name="ln-199"></a>
<a name="ln-200"></a>
<a name="ln-201"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_X_Y_Z_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-202"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-203"></a>    <span class="c">!&lt; Writes R8P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-204"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-205"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-206"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">X</span><span class="p">(:)</span>                  <span class="c">!&lt; X Grid coordinates</span>
<a name="ln-207"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Y</span><span class="p">(:)</span>                  <span class="c">!&lt; Y Grid coordinates</span>
<a name="ln-208"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Z</span><span class="p">(:)</span>                  <span class="c">!&lt; Z Grid coordinates</span>
<a name="ln-209"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-210"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="c">!&lt; Total number of nodes per axis</span>
<a name="ln-211"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">SpaceDimension</span>        <span class="c">!&lt; Space dimension</span>
<a name="ln-212"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">GridID</span>                <span class="c">!&lt; Index to loop on GridID&#39;s</span>
<a name="ln-213"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-214"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-215"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-216"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-217"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-218"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-219"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-220"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-221"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-222"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-223"></a>        <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-224"></a>            <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">,</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-225"></a>            <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">,</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-226"></a>            <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">,</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">3</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-227"></a>            <span class="n">SpaceDimension</span> <span class="o">=</span> <span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">))</span>
<a name="ln-228"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                 <span class="p">&amp;</span>
<a name="ln-229"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;X_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-230"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-231"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-232"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-233"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">X</span><span class="p">)</span>
<a name="ln-234"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                 <span class="p">&amp;</span>
<a name="ln-235"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Y_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-236"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-237"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-238"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-239"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">Y</span><span class="p">)</span>
<a name="ln-240"></a>            <span class="k">if</span><span class="p">(</span><span class="n">SpaceDimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="k">then</span>
<a name="ln-241"></a><span class="k">                call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                 <span class="p">&amp;</span>
<a name="ln-242"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Z_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-243"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-244"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-245"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                      <span class="p">&amp;</span>
<a name="ln-246"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Z</span><span class="p">)</span>
<a name="ln-247"></a>            <span class="n">endif</span>
<a name="ln-248"></a>        <span class="n">enddo</span>
<a name="ln-249"></a>        <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">(),</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-250"></a>        <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">(),</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-251"></a>        <span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometrySizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">(),</span> <span class="k">Dimension</span><span class="o">=</span><span class="mi">3</span><span class="p">),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-252"></a>        <span class="n">SpaceDimension</span> <span class="o">=</span> <span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))</span>
<a name="ln-253"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                         <span class="p">&amp;</span>
<a name="ln-254"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;X_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-255"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-256"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-257"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-258"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">X</span><span class="p">)</span>
<a name="ln-259"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                         <span class="p">&amp;</span>
<a name="ln-260"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Y_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-261"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-262"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-263"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-264"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">Y</span><span class="p">)</span>
<a name="ln-265"></a>        <span class="k">if</span><span class="p">(</span><span class="n">SpaceDimension</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="k">then</span>
<a name="ln-266"></a><span class="k">            call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                         <span class="p">&amp;</span>
<a name="ln-267"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Z_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-268"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-269"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-270"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LocalGeometrySize</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                              <span class="p">&amp;</span>
<a name="ln-271"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">Z</span><span class="p">)</span>
<a name="ln-272"></a>        <span class="n">endif</span>
<a name="ln-273"></a><span class="cp">#endif</span>
<a name="ln-274"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_X_Y_Z_R8P</span>
<a name="ln-275"></a>
<a name="ln-276"></a>
<a name="ln-277"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_DXDYDZ_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Origin</span><span class="p">,</span> <span class="n">DxDyDz</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-278"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-279"></a>    <span class="c">!&lt; Writes R4P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-280"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-281"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-282"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Origin</span><span class="p">(:)</span>             <span class="c">!&lt; Origin coordinates</span>
<a name="ln-283"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">DxDyDz</span><span class="p">(:)</span>             <span class="c">!&lt; Coodinates step for the next point</span>
<a name="ln-284"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-285"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">GridID</span>                <span class="c">!&lt; Index to loop on GridID&#39;s</span>
<a name="ln-286"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-287"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-288"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-289"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-290"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-291"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-292"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-293"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-294"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-295"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-296"></a>        <span class="k">select case</span> <span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))</span>
<a name="ln-297"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDYDZ</span><span class="p">)</span>
<a name="ln-298"></a>                <span class="c">! Origin and DxDyDz size must be 3</span>
<a name="ln-299"></a>                <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-300"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-301"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-302"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-303"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-304"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-305"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-306"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-307"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-308"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-309"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-310"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-311"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-312"></a>                <span class="n">enddo</span>
<a name="ln-313"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                             <span class="p">&amp;</span>
<a name="ln-314"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-315"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-316"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-317"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-318"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-319"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                             <span class="p">&amp;</span>
<a name="ln-320"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-321"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-322"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-323"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-324"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-325"></a>
<a name="ln-326"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDY</span><span class="p">)</span>
<a name="ln-327"></a>                <span class="c">! Origin and DxDyDz size must be 2</span>
<a name="ln-328"></a>                <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-329"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-330"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-331"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-332"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-333"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-334"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-335"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-336"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-337"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-338"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-339"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-340"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-341"></a>                <span class="n">enddo</span>
<a name="ln-342"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                              <span class="p">&amp;</span>
<a name="ln-343"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-344"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-345"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-346"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-347"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-348"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                              <span class="p">&amp;</span>
<a name="ln-349"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-350"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-351"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-352"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-353"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-354"></a>        <span class="k">end select</span>
<a name="ln-355"></a><span class="cp">#endif</span>
<a name="ln-356"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_DXDYDZ_R4P</span>
<a name="ln-357"></a>
<a name="ln-358"></a>
<a name="ln-359"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_DXDYDZ_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Origin</span><span class="p">,</span> <span class="n">DxDyDz</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-360"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-361"></a>    <span class="c">!&lt; Writes R4P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-362"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-363"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-364"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Origin</span><span class="p">(:)</span>             <span class="c">!&lt; Origin coordinates</span>
<a name="ln-365"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>                                  <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">DxDyDz</span><span class="p">(:)</span>             <span class="c">!&lt; Coodinates step for the next point</span>
<a name="ln-366"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-367"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                           <span class="kd">::</span> <span class="n">GridID</span>                <span class="c">!&lt; Index to loop on GridID&#39;s</span>
<a name="ln-368"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-369"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-370"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-371"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-372"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-373"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-374"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-375"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-376"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-377"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-378"></a>        <span class="k">select case</span> <span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))</span>
<a name="ln-379"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDYDZ</span><span class="p">)</span>
<a name="ln-380"></a>                <span class="c">! Origin and DxDyDz size must be 3</span>
<a name="ln-381"></a>                <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-382"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-383"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-384"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-385"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-386"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-387"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-388"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-389"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-390"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-391"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-392"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-393"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-394"></a>                <span class="n">enddo</span>
<a name="ln-395"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                             <span class="p">&amp;</span>
<a name="ln-396"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-397"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-398"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-399"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-400"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-401"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                             <span class="p">&amp;</span>
<a name="ln-402"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-403"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-404"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-405"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-406"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-407"></a>
<a name="ln-408"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDY</span><span class="p">)</span>
<a name="ln-409"></a>                <span class="c">! Origin and DxDyDz size must be 2</span>
<a name="ln-410"></a>                <span class="k">do </span><span class="n">GridID</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-411"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-412"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-413"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-414"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-415"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-416"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-417"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteMetadata</span><span class="p">(</span>                                                                      <span class="p">&amp;</span>
<a name="ln-418"></a>                            <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))),</span>  <span class="p">&amp;</span>
<a name="ln-419"></a>                            <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-420"></a>                            <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                      <span class="p">&amp;</span>
<a name="ln-421"></a>                            <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                          <span class="p">&amp;</span>
<a name="ln-422"></a>                            <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-423"></a>                <span class="n">enddo</span>
<a name="ln-424"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                              <span class="p">&amp;</span>
<a name="ln-425"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-426"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-427"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-428"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-429"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-430"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteData</span><span class="p">(</span>                                                                                              <span class="p">&amp;</span>
<a name="ln-431"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-432"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-433"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-434"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_I8P</span><span class="o">/</span><span class="p">),</span>                                                                                  <span class="p">&amp;</span>
<a name="ln-435"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="mi">2</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
<a name="ln-436"></a>        <span class="k">end select</span>
<a name="ln-437"></a><span class="cp">#endif</span>
<a name="ln-438"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteGeometry_DXDYDZ_R8P</span>
<a name="ln-439"></a>
<a name="ln-440"></a>
<a name="ln-441"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteTopology_I4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connectivities</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-442"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-443"></a>    <span class="c">!&lt; Writes I4P connectivities to a HDF5 file for the dataset per process strategy</span>
<a name="ln-444"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-445"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>     <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-446"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>                               <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Connectivities</span><span class="p">(:)</span>  <span class="c">!&lt; I4P Grid connectivities</span>
<a name="ln-447"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>               <span class="c">!&lt; Topology dataset name</span>
<a name="ln-448"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-449"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-450"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-451"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-452"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-453"></a>        <span class="c">! No topology data is written into HDF5 file</span>
<a name="ln-454"></a><span class="cp">#endif</span>
<a name="ln-455"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteTopology_I4P</span>
<a name="ln-456"></a>
<a name="ln-457"></a>
<a name="ln-458"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteTopology_I8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connectivities</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-459"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-460"></a>    <span class="c">!&lt; Writes I8P connectivities to a HDF5 file for the dataset per process strategy</span>
<a name="ln-461"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-462"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>     <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-463"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">),</span>                               <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Connectivities</span><span class="p">(:)</span>  <span class="c">!&lt; I8P Grid connectivities</span>
<a name="ln-464"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>               <span class="c">!&lt; Topology dataset name</span>
<a name="ln-465"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-466"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-467"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-468"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-469"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-470"></a>        <span class="c">! No topology data is written into HDF5 file</span>
<a name="ln-471"></a><span class="cp">#endif</span>
<a name="ln-472"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_WriteTopology_I8P</span>
<a name="ln-473"></a>
<a name="ln-474"></a>
<a name="ln-475"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_XYZ_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">XYZ</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-476"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-477"></a>    <span class="c">!&lt; Read XY[Z] R4P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-478"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-479"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-480"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">XYZ</span><span class="p">(:)</span>                <span class="c">!&lt; Grid coordinates</span>
<a name="ln-481"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-482"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">spacedim</span>              <span class="c">!&lt; Space dimension</span>
<a name="ln-483"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">globalnumberofnodes</span>   <span class="c">!&lt; Global number of nodes</span>
<a name="ln-484"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">localnumberofnodes</span>    <span class="c">!&lt; Local number of nodes</span>
<a name="ln-485"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">nodeoffset</span>            <span class="c">!&lt; Node offset for a particular grid</span>
<a name="ln-486"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-487"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-488"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-489"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-490"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-491"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-492"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-493"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-494"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-495"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-496"></a>        <span class="n">spacedim</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">())),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-497"></a>        <span class="n">globalnumberofnodes</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalNumberOfNodes</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-498"></a>        <span class="n">localnumberofnodes</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNumberOfNodesPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-499"></a>        <span class="n">nodeoffset</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNodeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-500"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                     <span class="p">&amp;</span>
<a name="ln-501"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-502"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">spacedim</span><span class="o">*</span><span class="n">localnumberofnodes</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-503"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                   <span class="p">&amp;</span>
<a name="ln-504"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">spacedim</span><span class="o">*</span><span class="n">localnumberofnodes</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-505"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">XYZ</span><span class="p">)</span>
<a name="ln-506"></a><span class="cp">#endif</span>
<a name="ln-507"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_XYZ_R4P</span>
<a name="ln-508"></a>
<a name="ln-509"></a>
<a name="ln-510"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_XYZ_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">XYZ</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-511"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-512"></a>    <span class="c">!&lt; Read XY[Z] R8P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-513"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-514"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-515"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">XYZ</span><span class="p">(:)</span>                <span class="c">!&lt; Grid coordinates</span>
<a name="ln-516"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-517"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">spacedim</span>              <span class="c">!&lt; Space dimension</span>
<a name="ln-518"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">globalnumberofnodes</span>   <span class="c">!&lt; Global number of nodes</span>
<a name="ln-519"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">localnumberofnodes</span>    <span class="c">!&lt; Local number of nodes</span>
<a name="ln-520"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">nodeoffset</span>            <span class="c">!&lt; Node offset for a particular grid</span>
<a name="ln-521"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-522"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-523"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-524"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-525"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-526"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-527"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-528"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-529"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-530"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-531"></a>        <span class="n">spacedim</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">())),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-532"></a>        <span class="n">globalnumberofnodes</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalNumberOfNodes</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-533"></a>        <span class="n">localnumberofnodes</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNumberOfNodesPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-534"></a>        <span class="n">nodeoffset</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNodeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-535"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                     <span class="p">&amp;</span>
<a name="ln-536"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-537"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">spacedim</span><span class="o">*</span><span class="n">localnumberofnodes</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-538"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                   <span class="p">&amp;</span>
<a name="ln-539"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">spacedim</span><span class="o">*</span><span class="n">localnumberofnodes</span><span class="o">/</span><span class="p">),</span>                                                 <span class="p">&amp;</span>
<a name="ln-540"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">XYZ</span><span class="p">)</span>
<a name="ln-541"></a><span class="cp">#endif</span>
<a name="ln-542"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_XYZ_R8P</span>
<a name="ln-543"></a>
<a name="ln-544"></a>
<a name="ln-545"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_X_Y_Z_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-546"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-547"></a>    <span class="c">!&lt; Read R4P X_Y_Z coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-548"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-549"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-550"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">X</span><span class="p">(:)</span>                  <span class="c">!&lt; X Grid coordinates</span>
<a name="ln-551"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">Y</span><span class="p">(:)</span>                  <span class="c">!&lt; Y Grid coordinates</span>
<a name="ln-552"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">Z</span><span class="p">(:)</span>                  <span class="c">!&lt; Z Grid coordinates</span>
<a name="ln-553"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-554"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">spacedim</span>              <span class="c">!&lt; Space dimension</span>
<a name="ln-555"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="c">!&lt; Global number of nodes per dimension</span>
<a name="ln-556"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>   <span class="c">!&lt; Local number of nodes per dimension</span>
<a name="ln-557"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>   <span class="c">!&lt; Node offset for a particular grid</span>
<a name="ln-558"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-559"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-560"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-561"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-562"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-563"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-564"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-565"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-566"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-567"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-568"></a>        <span class="n">spacedim</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">())),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-569"></a>        <span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalXsize</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-570"></a>        <span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalYsize</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-571"></a>        <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetXSizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-572"></a>        <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetYSizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-573"></a>        <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetXSizeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-574"></a>        <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetYSizeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-575"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-576"></a>    <span class="c">!&lt; X</span>
<a name="ln-577"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-578"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                           <span class="p">&amp;</span>
<a name="ln-579"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;X_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-580"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-581"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-582"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-583"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">X</span><span class="p">)</span>
<a name="ln-584"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-585"></a>    <span class="c">!&lt; Y</span>
<a name="ln-586"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-587"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                           <span class="p">&amp;</span>
<a name="ln-588"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Y_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-589"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-590"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-591"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-592"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">Y</span><span class="p">)</span>
<a name="ln-593"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-594"></a>    <span class="c">!&lt; Z</span>
<a name="ln-595"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-596"></a>        <span class="k">if</span><span class="p">(</span><span class="n">spacedim</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="k">then</span>
<a name="ln-597"></a><span class="k">            </span><span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalZsize</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-598"></a>            <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetZSizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-599"></a>            <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetZSizeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-600"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                           <span class="p">&amp;</span>
<a name="ln-601"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Z_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-602"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LOCalnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-603"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-604"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-605"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">Z</span><span class="p">)</span>
<a name="ln-606"></a>        <span class="k">else</span>
<a name="ln-607"></a><span class="k">            if</span><span class="p">(</span><span class="nb">allocated</span><span class="p">(</span><span class="n">Z</span><span class="p">))</span> <span class="k">deallocate</span><span class="p">(</span><span class="n">Z</span><span class="p">);</span> <span class="k">allocate</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">1</span><span class="p">));</span> <span class="n">Z</span> <span class="o">=</span> <span class="mf">0.0_R4P</span>
<a name="ln-608"></a>        <span class="n">endif</span>
<a name="ln-609"></a><span class="cp">#endif</span>
<a name="ln-610"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_X_Y_Z_R4P</span>
<a name="ln-611"></a>
<a name="ln-612"></a>
<a name="ln-613"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_X_Y_Z_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-614"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-615"></a>    <span class="c">!&lt; Read X_Y_Z R8P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-616"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-617"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-618"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">X</span><span class="p">(:)</span>                  <span class="c">!&lt; X Grid coordinates</span>
<a name="ln-619"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">Y</span><span class="p">(:)</span>                  <span class="c">!&lt; Y Grid coordinates</span>
<a name="ln-620"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">Z</span><span class="p">(:)</span>                  <span class="c">!&lt; Z Grid coordinates</span>
<a name="ln-621"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-622"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">spacedim</span>              <span class="c">!&lt; Space dimension</span>
<a name="ln-623"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="c">!&lt; Global number of nodes per dimension</span>
<a name="ln-624"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>   <span class="c">!&lt; Local number of nodes per dimension</span>
<a name="ln-625"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">HSIZE_T</span><span class="p">)</span>                                       <span class="kd">::</span> <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>   <span class="c">!&lt; Node offset for a particular grid</span>
<a name="ln-626"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-627"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-628"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-629"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-630"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-631"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-632"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-633"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-634"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-635"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-636"></a>        <span class="n">spacedim</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">())),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-637"></a>        <span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalXsize</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-638"></a>        <span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalYsize</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-639"></a>        <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetXSizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-640"></a>        <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetYSizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-641"></a>        <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetXSizeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-642"></a>        <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetYSizeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-643"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-644"></a>    <span class="c">!&lt; X</span>
<a name="ln-645"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-646"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                           <span class="p">&amp;</span>
<a name="ln-647"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;X_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-648"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-649"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-650"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-651"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">X</span><span class="p">)</span>
<a name="ln-652"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-653"></a>    <span class="c">!&lt; Y</span>
<a name="ln-654"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-655"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                           <span class="p">&amp;</span>
<a name="ln-656"></a>                <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Y_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-657"></a>                <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-658"></a>                <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-659"></a>                <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-660"></a>                <span class="n">Values</span>          <span class="o">=</span> <span class="n">Y</span><span class="p">)</span>
<a name="ln-661"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-662"></a>    <span class="c">!&lt; Z</span>
<a name="ln-663"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-664"></a>        <span class="k">if</span><span class="p">(</span><span class="n">spacedim</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="k">then</span>
<a name="ln-665"></a><span class="k">            </span><span class="n">globalnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalZsize</span><span class="p">(),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-666"></a>            <span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetZSizePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-667"></a>            <span class="n">nodeoffsetperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>  <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetZSizeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()),</span><span class="n">HSIZE_T</span><span class="p">)</span>
<a name="ln-668"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                           <span class="p">&amp;</span>
<a name="ln-669"></a>                    <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Z_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-670"></a>                    <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">LOCalnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-671"></a>                    <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                         <span class="p">&amp;</span>
<a name="ln-672"></a>                    <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">localnodesperdim</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="p">),</span>                                                               <span class="p">&amp;</span>
<a name="ln-673"></a>                    <span class="n">Values</span>          <span class="o">=</span> <span class="n">Z</span><span class="p">)</span>
<a name="ln-674"></a>        <span class="k">else</span>
<a name="ln-675"></a><span class="k">            if</span><span class="p">(</span><span class="nb">allocated</span><span class="p">(</span><span class="n">Z</span><span class="p">))</span> <span class="k">deallocate</span><span class="p">(</span><span class="n">Z</span><span class="p">);</span> <span class="k">allocate</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">1</span><span class="p">));</span> <span class="n">Z</span> <span class="o">=</span> <span class="mf">0.0_R4P</span>
<a name="ln-676"></a>        <span class="n">endif</span>
<a name="ln-677"></a><span class="cp">#endif</span>
<a name="ln-678"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_X_Y_Z_R8P</span>
<a name="ln-679"></a>
<a name="ln-680"></a>
<a name="ln-681"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_DXDYDZ_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Origin</span><span class="p">,</span> <span class="n">DxDyDz</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-682"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-683"></a>    <span class="c">!&lt; Read R4P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-684"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-685"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-686"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Origin</span><span class="p">(:)</span>            <span class="c">!&lt; Origin coordinates</span>
<a name="ln-687"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">DxDyDz</span><span class="p">(:)</span>            <span class="c">!&lt; Coodinates step for the next point</span>
<a name="ln-688"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>  <span class="kd">::</span> <span class="n">Name</span>                 <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-689"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-690"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-691"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-692"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-693"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-694"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-695"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-696"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-697"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-698"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-699"></a>        <span class="k">select case</span> <span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))</span>
<a name="ln-700"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDYDZ</span><span class="p">)</span>
<a name="ln-701"></a>                <span class="c">! Origin and DxDyDz size must be 3</span>
<a name="ln-702"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-703"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-704"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-705"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-706"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-707"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">)</span>
<a name="ln-708"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-709"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-710"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-711"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-712"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-713"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">)</span>
<a name="ln-714"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDY</span><span class="p">)</span>
<a name="ln-715"></a>                <span class="c">! Origin and DxDyDz size must be 2</span>
<a name="ln-716"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-717"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-718"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-719"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-720"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-721"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">)</span>
<a name="ln-722"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-723"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-724"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-725"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-726"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-727"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">)</span>
<a name="ln-728"></a>        <span class="k">end select</span>
<a name="ln-729"></a><span class="k">        </span><span class="n">Origin</span><span class="p">(:)</span> <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">Origin</span><span class="p">,</span><span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<a name="ln-730"></a>        <span class="n">DxDyDz</span><span class="p">(:)</span> <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">DxDyDz</span><span class="p">,</span><span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<a name="ln-731"></a><span class="cp">#endif</span>
<a name="ln-732"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_DXDYDZ_R4P</span>
<a name="ln-733"></a>
<a name="ln-734"></a>
<a name="ln-735"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_DXDYDZ_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Origin</span><span class="p">,</span> <span class="n">DxDyDz</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-736"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-737"></a>    <span class="c">!&lt; Read R8P coordinates to a HDF5 file for the dataset per process strategy</span>
<a name="ln-738"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-739"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-740"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Origin</span><span class="p">(:)</span>            <span class="c">!&lt; Origin coordinates</span>
<a name="ln-741"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                     <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">DxDyDz</span><span class="p">(:)</span>            <span class="c">!&lt; Coodinates step for the next point</span>
<a name="ln-742"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>  <span class="kd">::</span> <span class="n">Name</span>                 <span class="c">!&lt; Geometry dataset name</span>
<a name="ln-743"></a>        <span class="k">class</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                 <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI Environment</span>
<a name="ln-744"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span>              <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Spatial grid descriptor</span>
<a name="ln-745"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-746"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-747"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-748"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-749"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-750"></a>        <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetMPIEnvironment</span><span class="p">()</span>
<a name="ln-751"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetSpatialGridDescriptor</span><span class="p">()</span>
<a name="ln-752"></a>        <span class="n">assert</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">))</span>
<a name="ln-753"></a>        <span class="k">select case</span> <span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGeometryTypePerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))</span>
<a name="ln-754"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDYDZ</span><span class="p">)</span>
<a name="ln-755"></a>                <span class="c">! Origin and DxDyDz size must be 3</span>
<a name="ln-756"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-757"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-758"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-759"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-760"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-761"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">)</span>
<a name="ln-762"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-763"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-764"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-765"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-766"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">3_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-767"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">)</span>
<a name="ln-768"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_ORIGIN_DXDY</span><span class="p">)</span>
<a name="ln-769"></a>                <span class="c">! Origin and DxDyDz size must be 2</span>
<a name="ln-770"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-771"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;Origin_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-772"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-773"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-774"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-775"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">Origin</span><span class="p">)</span>
<a name="ln-776"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ReadDataset</span><span class="p">(</span>                                                                                                <span class="p">&amp;</span>
<a name="ln-777"></a>                        <span class="n">DatasetName</span>     <span class="o">=</span> <span class="s1">&#39;DxDyDz_&#39;</span><span class="o">//</span><span class="n">Name</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_rank</span><span class="p">()))),</span>  <span class="p">&amp;</span>
<a name="ln-778"></a>                        <span class="n">DatasetDims</span>     <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-779"></a>                        <span class="n">HyperSlabOffset</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">0_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-780"></a>                        <span class="n">HyperSlabSize</span>   <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="mi">2_HSIZE_T</span><span class="o">/</span><span class="p">),</span>                                                                              <span class="p">&amp;</span>
<a name="ln-781"></a>                        <span class="n">Values</span>          <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">)</span>
<a name="ln-782"></a>        <span class="k">end select</span>
<a name="ln-783"></a><span class="k">        </span><span class="n">Origin</span><span class="p">(:)</span> <span class="o">=</span> <span class="n">Origin</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">Origin</span><span class="p">,</span><span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<a name="ln-784"></a>        <span class="n">DxDyDz</span><span class="p">(:)</span> <span class="o">=</span> <span class="n">DxDyDz</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">DxDyDz</span><span class="p">,</span><span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<a name="ln-785"></a><span class="cp">#endif</span>
<a name="ln-786"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadGeometry_DXDYDZ_R8P</span>
<a name="ln-787"></a>
<a name="ln-788"></a>
<a name="ln-789"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadTopology_I4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connectivities</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-790"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-791"></a>    <span class="c">!&lt; Read I4P connectivities to a HDF5 file for the dataset per process strategy</span>
<a name="ln-792"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-793"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-794"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                  <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">Connectivities</span><span class="p">(:)</span>     <span class="c">!&lt; I4P Grid connectivities</span>
<a name="ln-795"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Topology dataset name</span>
<a name="ln-796"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-797"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-798"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-799"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-800"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-801"></a>        <span class="c">! No topology data is readed from HDF5 file</span>
<a name="ln-802"></a><span class="cp">#endif</span>
<a name="ln-803"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadTopology_I4P</span>
<a name="ln-804"></a>
<a name="ln-805"></a>
<a name="ln-806"></a>    <span class="k">subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadTopology_I8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connectivities</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-807"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-808"></a>    <span class="c">!&lt; Read I8P connectivities to a HDF5 file for the dataset per process strategy</span>
<a name="ln-809"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-810"></a>        <span class="k">class</span><span class="p">(</span><span class="n">hdf5_structured_dataset_per_process_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>        <span class="c">!&lt; HDF5 dataset per process handler for structured grids</span>
<a name="ln-811"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">),</span> <span class="k">allocatable</span><span class="p">,</span>                  <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="kd">::</span> <span class="n">Connectivities</span><span class="p">(:)</span>     <span class="c">!&lt; I8P Grid connectivities</span>
<a name="ln-812"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>                           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Topology dataset name</span>
<a name="ln-813"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-814"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-815"></a>        <span class="c">!&lt; @Note: Fixed dataset name?</span>
<a name="ln-816"></a>        <span class="c">!&lt; @Note: Fixed rank 1?</span>
<a name="ln-817"></a><span class="cp">#ifdef ENABLE_HDF5</span>
<a name="ln-818"></a>        <span class="c">! No topology data is readed from HDF5 file</span>
<a name="ln-819"></a><span class="cp">#endif</span>
<a name="ln-820"></a>    <span class="k">end subroutine </span><span class="n">hdf5_structured_dataset_per_process_ReadTopology_I8P</span>
<a name="ln-821"></a>
<a name="ln-822"></a>
<a name="ln-823"></a><span class="k">end module </span><span class="n">hdf5_structured_dataset_per_process_handler</span>
</pre></div>

    </section>
    </div>
  </div>

  <section class="visible-xs visible-sm hidden-md">
    <hr>
    

<div class="panel panel-default">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-1">All Source Files</a></h3></div>
  <div id="allfiles-1" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../sourcefile/ch_unstructured_hexahedron_perf.f90.html">ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/fox_xdmf.f90.html">fox_xdmf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_contiguous_hyperslab_handler.f90.html">hdf5_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_dataset_per_process_handler.f90.html">hdf5_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_handler.f90.html">hdf5_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_contiguous_hyperslab_handler.f90.html">hdf5_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_dataset_per_process_handler.f90.html">hdf5_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_contiguous_hyperslab_handler.f90.html">hdf5_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_dataset_per_process_handler.f90.html">hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/mpi_environment.f90.html">mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/spatial_grid_descriptor.f90.html">spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler.f90.html">steps_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler_test.f90.html">steps_handler_test.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_contiguous_hyperslab_factory.f90.html">structured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_dataset_per_process_factory.f90.html">structured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_spatial_grid_descriptor.f90.html">structured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_uniform_grid_descriptor.f90.html">structured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_fox_wxml.f90.html">test_FoX_wxml.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90.html">test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_dataset_per_process_handler.f90.html">test_hdf5_rectilinear_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_contiguous_hyperslabs_handler.f90.html">test_hdf5_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_dataset_per_process_handler.f90.html">test_hdf5_regular_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_contiguous_hyperslabs_handler.f90.html">test_hdf5_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_dataset_per_process_handler.f90.html">test_hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_mpi_environment.f90.html">test_mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_attribute.f90.html">test_xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_character_data.f90.html">test_xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_dataitem.f90.html">test_xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_geometry.f90.html">test_xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_grid.f90.html">test_xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90.html">test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_dataset_per_process.f90.html">test_xdmf_rectilinear_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_contiguous_hyperslabs_handler.f90.html">test_xdmf_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_dataset_per_process.f90.html">test_xdmf_regular_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_time.f90.html">test_xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_topology.f90.html">test_xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_contiguous_hyperslabs_handler.f90.html">test_xdmf_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_dataset_per_process.f90.html">test_xdmf_unstructured_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_xinclude.f90.html">test_xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_hdf5_mod.f90.html">try_compile_hdf5_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_mpi_mod.f90.html">try_compile_mpi_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/uniform_grid_descriptor.f90.html">uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_contiguous_hyperslab_factory.f90.html">unstructured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_dataset_per_process_factory.f90.html">unstructured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_spatial_grid_descriptor.f90.html">unstructured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_uniform_grid_descriptor.f90.html">unstructured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_attribute.f90.html">xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_character_data.f90.html">xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_contiguous_hyperslab_handler.f90.html">xdmf_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataitem.f90.html">xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataset_per_process_handler.f90.html">xdmf_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_domain.f90.html">xdmf_domain.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_element.f90.html">xdmf_element.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_file.f90.html">xdmf_file.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_geometry.f90.html">xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_grid.f90.html">xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_handler.f90.html">xdmf_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_information.f90.html">xdmf_information.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_parameters.f90.html">xdmf_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_contiguous_hyperslab_handler.f90.html">xdmf_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_dataset_per_process_handler.f90.html">xdmf_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_time.f90.html">xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_topology.f90.html">xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_contiguous_hyperslab_handler.f90.html">xdmf_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_dataset_per_process_handler.f90.html">xdmf_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_utils.f90.html">xdmf_utils.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_xinclude.f90.html">xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for.f90.html">xh5for.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_abstract_factory.f90.html">xh5for_abstract_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_grid.f90.html">xh5for_ch_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_non_static_grid_series.f90.html">xh5for_ch_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_static_grid_series.f90.html">xh5for_ch_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_grid.f90.html">xh5for_ch_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_non_static_grid_series.f90.html">xh5for_ch_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_static_grid_series.f90.html">xh5for_ch_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron.f90.html">xh5for_ch_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron_perf.f90.html">xh5for_ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_mixedtopology.f90.html">xh5for_ch_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_non_static_tetrahedron.f90.html">xh5for_ch_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_quadilateral.f90.html">xh5for_ch_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_mixed_series.f90.html">xh5for_ch_unstructured_static_mixed_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_tetrahedron.f90.html">xh5for_ch_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_tetrahedron.f90.html">xh5for_ch_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_triangles.f90.html">xh5for_ch_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_grid.f90.html">xh5for_dpp_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_non_static_grid_series.f90.html">xh5for_dpp_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_static_grid_series.f90.html">xh5for_dpp_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_grid.f90.html">xh5for_dpp_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_non_static_grid_series.f90.html">xh5for_dpp_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_static_grid_series.f90.html">xh5for_dpp_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_hexahedron.f90.html">xh5for_dpp_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_mixedtopology.f90.html">xh5for_dpp_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_non_static_tetrahedron.f90.html">xh5for_dpp_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_quadilateral.f90.html">xh5for_dpp_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_static_tetrahedron.f90.html">xh5for_dpp_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_tetrahedron.f90.html">xh5for_dpp_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_triangles.f90.html">xh5for_dpp_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_factory.f90.html">xh5for_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_handler.f90.html">xh5for_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_metadata.f90.html">xh5for_metadata.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_parameters.f90.html">xh5for_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_utils.f90.html">xh5for_utils.f90</a>
      
    </div>
  </div>
</div>


  </section>
  
    <hr>    
    </div> <!-- /container -->
    <footer>
      <div class="container">
      <div class="row">
        <div class="col-xs-6 col-md-4"><p>&copy; 2016 </p></div>
        <div class="col-xs-6 col-md-4 col-md-push-4">
          <p class="text-right">
            Documentation generated by 
            <a href="https://github.com/cmacmackin/ford">FORD</a>
             on 2016-11-08T12:24:53.235950 
          </p>
        </div>
        <div class="col-xs-12 col-md-4 col-md-pull-4"><p class="text-center"> XH5For was developed by Víctor Sande Veiga</p></div>
      </div>
      <br>
      </div> <!-- /container -->    
    </footer>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
<!--
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
-->
    <script src="../js/bootstrap.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../js/ie10-viewport-bug-workaround.js"></script>

    <!-- MathJax JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({
        TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } },
        jax: ['input/TeX','input/MathML','output/HTML-CSS'],
        extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'],
        'HTML-CSS': { 
           styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} }
        }
      });
    </script>
    <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    
    
    <script src="../tipuesearch/tipuesearch_content.js"></script>
    <link  href="../tipuesearch/tipuesearch.css" rel="stylesheet">
    <script src="../tipuesearch/tipuesearch_set.js"></script>
    <script src="../tipuesearch/tipuesearch.js"></script>
    
    
  </body>
</html>